/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package util;

import beans.Persona;
import java.util.Date;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author nMoncho
 */
public class AmigosTableModel extends AbstractTableModel{

    private List<Persona> modelo;
    
    public AmigosTableModel(List<Persona> modelo){
        this.modelo = modelo;
    }

    public Persona getAt(int row){
        return modelo.get(row);
    }

    @Override
    public int getRowCount() {
        return modelo.size();
    }

    @Override
    public int getColumnCount() {
        return 4;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Persona amigo = modelo.get(rowIndex);
        Object retorno = null;
        switch(columnIndex){
            case 0: retorno = amigo.getNombre();break;
            case 1: retorno = amigo.getApellido();break;
            case 2: retorno = amigo.getTelefono();break;
            case 3: retorno = amigo.getFechaNacimiento();break;
        }
        return retorno;
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        Persona amigo = modelo.get(rowIndex);
        switch(columnIndex){
            case 0: amigo.setNombre((String)aValue);break;
            case 1: amigo.setApellido((String)aValue);break;
            case 2: amigo.setTelefono((String)aValue);break;
            case 3: amigo.setFechaNacimiento((Date)aValue);break;
        }
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return true;
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        Class clazz = null;
        switch(columnIndex){
            case 0: clazz = String.class; break;
            case 1: clazz = String.class; break;
            case 2: clazz = String.class; break;
            case 3: clazz = Date.class; break;
        }

        return clazz;
    }

    @Override
    public String getColumnName(int columnIndex) {
        String retorno = null;
        switch(columnIndex){
            case 0: retorno = "Nombre"; break;
            case 1: retorno = "Apellido"; break;
            case 2: retorno = "Telefono"; break;
            case 3: retorno = "Fecha de Nacimiento"; break;
        }

        return retorno;
    }

}
